home
diamond Go Premium
Data Engineering Path  ·  Airflow
Apache Airflow Logo

About Apache Airflow

In one sentence

Apache Airflow is the conductor, not the orchestra — it doesn't move or transform a single byte of your data itself; it just makes sure every other system (Spark, dbt, S3, Snowflake, your own scripts) plays its part in the right order, at the right time, and tells you the moment something goes wrong.


What Is It, Really?

Airflow is an open-source platform for building, scheduling, and monitoring workflows — expressed as ordinary Python code rather than a drag-and-drop canvas or a wall of YAML. A workflow in Airflow is a DAG (Directed Acyclic Graph): a set of tasks with defined dependencies, and no cycles back on themselves.

It was built to solve one very specific, very common problem: data pipelines that used to be a folder of cron jobs and shell scripts, held together by hope, with no visibility into what ran, what failed, or why.

from airflow.sdk import dag, task
from datetime import datetime

@dag(schedule="@daily", start_date=datetime(2024, 1, 1), catchup=False)
def hello_airflow():

    @task()
    def extract():
        return {"rows": 1200}

    @task()
    def report(data: dict):
        print(f"Pipeline processed {data['rows']} rows today.")

    report(extract())

hello_airflow()

That's a complete, real, runnable DAG — a handful of lines, and Airflow already gives you a UI to watch it run, retry logic if it fails, and a full history of every execution. Strip away the specifics and every DAG, no matter how complex, reduces to the same shape: a start, some work, an end.

Airflow Graph View — a minimal real DAG showing start, do_something, and end as three connected tasks Figure — the Graph View for the DAG above: three tasks, two links, all green because the run succeeded.

Zoom out from any single DAG and the Airflow UI also gives you a dashboard listing every pipeline you've registered, its schedule, and its recent history:

Airflow Web UI — DAGs Dashboard listing all registered pipelines


A Brief History

When What Happened
October 2014 Created at Airbnb by Maxime Beauchemin, to manage Airbnb's own increasingly tangled web of internal data pipelines.
2015 Open-sourced.
March 2016 Entered the Apache Software Foundation Incubator.
January 2019 Graduated to a full Apache Top-Level Project.
December 2020 — Airflow 2.0 The single biggest leap in the project's history: a rewritten, highly-available Scheduler, and the TaskFlow API (@dag / @task) — the Python-native way of writing DAGs used throughout this course.
2021 – 2024 — Airflow 2.x Steady maturity: Deferrable operators (waiting on external systems without blocking a worker slot), Datasets (data-aware scheduling instead of time-only), a redesigned Grid View, Dynamic Task Mapping.
2025 — Airflow 3.0 A second major leap: the workflow engine split from task execution (the Task SDK), multi-language task support, Datasets renamed to Assets, and DAG Versioning.

Airflow is, today, one of the most widely adopted pieces of open-source data infrastructure in the world — the de facto default whenever a team asks "what should orchestrate this?"

Where to go deeper
This page is deliberately just the headline version. For the full version-by-version feature comparison and the complete ecosystem timeline, see Airflow Ecosystem & Version Evolution later in this module.

What Problem Category Does It Sit In?

Airflow is an orchestrator — a category distinct from (and often confused with) processing engines and streaming platforms:

Category Job Examples Airflow's Relationship
Orchestration Decide when and in what order work happens Airflow, Dagster, Prefect This is Airflow.
Processing Actually transform the data Spark, dbt, Pandas Airflow tells Spark to run — Spark does the work.
Streaming Continuous, low-latency data movement Kafka, Flink Airflow schedules batches; it does not process streams itself.

That single distinction — Airflow orchestrates, it does not compute — is the most important mental model to carry into every page that follows.

lock

This content is reserved for Premium Members.

Upgrade to Premium

Entity Details

Create New Item

help

Submit Technical Query

Have a question or run into an issue? Describe it below, upload an optional screenshot, and our engineering team will answer it!

image Attach image (optional)

Submit Feedback

build Free Developer Utility Free Tool
gavel

Privacy & Legal Disclaimer

1. Client-Side Browser Processing

All utility tools on DeepEngineerHub (including Image to PDF, Text Formatters, JSON Converters, and Encryptors) execute 100% locally within your client browser using WebAssembly and JavaScript. No uploaded images, text, or documents are transmitted, collected, or stored on remote servers.

2. Limitation of Liability ("As-Is" Provision)

Tools and services are provided free of charge for convenience and educational purposes "as-is" without warranties of any kind. DeepEngineerHub shall not be held liable for any data loss, formatting inconsistencies, or indirect damages resulting from tool usage.

3. Open Source & Third-Party Software

Certain utilities utilize open-source client libraries (such as jsPDF, Mermaid.js, Pyodide) licensed under MIT, Apache, or BSD open licenses. All intellectual property remains with their respective copyright holders.